home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio / Ray Dream Studio (CDRAYD1) (Ray Dream) (1995).iso / DREAMSDK.WIN / INCLUDE / I3DEXSHA.H < prev    next >
C/C++ Source or Header  |  1995-09-01  |  3KB  |  70 lines

  1. /* $Id: i3dexsha.h 1.2 1995/06/30 18:51:58 michel Exp $ */
  2. /*****************************************************************************\
  3. *                                                                             *
  4. * I3DExSha.h -     I3DExShader definition                                                      *
  5. *                                                                             *
  6. *           Copyright (c) 1995, Ray Dream, Inc. All rights reserved.          *
  7. *                                                                             *
  8. \*****************************************************************************/
  9.  
  10. #ifndef __I3DEXSHA__
  11. #define __I3DEXSHA__
  12.  
  13. #ifndef __I3DEX__
  14. #include "I3DEx.h"
  15. #endif
  16.  
  17.  
  18. enum {
  19.     kUsesGetValue = 1,
  20.     kUsesGetColor = 2,
  21.     kUsesGetVector = 4,
  22.     kUsesDoShade = 16
  23.     };
  24.  
  25. //****** Globally Unique Ids *************************************************
  26.  
  27. DEFINE_GUID(IID_I3DExShader, 0x06DD2161L, 0x2ED7, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
  28.  
  29. /*****************************************************************************\
  30. *  I3DExShader                                                                *
  31. *                                                                             *
  32. *  Shaders                                                                    *
  33. *                                                                             *
  34. \*****************************************************************************/
  35.  
  36. #undef  INTERFACE
  37. #define INTERFACE   I3DExShader
  38.  
  39. DECLARE_INTERFACE_(I3DExShader, I3DExDataExchanger) {
  40.     // IUnknown methods
  41.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  42.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  43.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  44.   
  45.     // I3DExtension methods
  46.     STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
  47.     STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
  48.  
  49.   // I3DExDataExchanger methods
  50.     STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
  51.     STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
  52.   STDMETHOD(ExtensionDataChanged) (THIS) PURE;
  53.   STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
  54.     STDMETHOD_(short, GetResID) (THIS) PURE;
  55.   
  56.   // I3DExShader methods
  57.     STDMETHOD_(BOOLEAN, IsEqualTo) (THIS_ I3DExShader* aShader) PURE;
  58.     STDMETHOD_(BOOLEAN, DependsOnAppliedExtent) (THIS) PURE;
  59.     STDMETHOD(GetShadingFlags) (THIS_ ShadingFlags* theFlags) PURE;
  60.     STDMETHOD_(ULONG, GetPreferredOutput) (THIS) PURE; // Tell which one of the following calls is implemented. See kUseGetValue... constants above
  61.     //-- Shading calls. Implement only one of those. Return E_NOTIMPL for the others
  62.     STDMETHOD(DoShade) (THIS_ ShadingInOut* inOut, ShadingElem* shadingElem) PURE;
  63.     STDMETHOD(GetValue) (THIS_ NUM3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
  64.     STDMETHOD(GetColor) (THIS_ COLOR3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
  65.     STDMETHOD(GetVector) (THIS_ VECTOR3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
  66.     };
  67.  
  68.  
  69. #endif
  70.